#ifndef __ERROR_FUNCTION_H__
#define __ERROR_FUNCTION_H__

#include "Model.h"
#include "OptimizationSupervisor.h"

namespace learn {

struct ErrorFunction {
	virtual ~ErrorFunction() { }
	virtual float getError(Model &model, OptimizationSupervisor &data) = 0;
	virtual float getErrorDerivative(Model& model, OptimizationSupervisor &data, float *outDerivative) = 0;
	
};

}

#endif // __ERROR_FUNCTION_H__